第7レッスンへようこそ。ここではトランスファー学習という技術について紹介します。この手法は、巨大な汎用データセット(例:ImageNet)で事前に学習されたディープラーニングモデルを再利用し、新しい特定のタスク(例:私たちのFoodVisionチャレンジ)に適応させるものです。ラベル付きデータが限られている場合でも、優れた成果を効率的に得るために不可欠です。
1. 事前学習済み重みの力
深層ニューラルネットワークは階層的に特徴を学習します。下位レイヤーは基本的な概念(縁、角、テクスチャ)を学び、上位レイヤーはそれらを組み合わせて複雑な概念(目、車輪、特定の物体)を作り出します。重要な洞察は、初期に学んだ基本的な特徴はほとんどの視覚領域において普遍的に適用可能であるということです。
トランスファー学習の要素
- ソースタスク:1,400万枚の画像と1,000カテゴリ(例:ImageNet)で学習すること。
- ターゲットタスク:非常に小さなデータセット(例:私たちの特定のFoodVisionクラス)に分類するように重みを調整すること。
- 活用される部分:ネットワークのパラメータの大部分――特徴抽出レイヤー――はそのまま再利用されます。
効率の向上
トランスファー学習は、二つの主要なリソース障壁を大幅に削減します:計算コスト(数日間もモデル全体を訓練しなくて済む)およびデータ要件(数百枚のトレーニング例で高い精度が達成可能であり、数千枚は不要)。
ターミナルbash — pytorch-env
> 準備完了。実行するには「実行」をクリックしてください。
>
テンソルインスペクターライブ
コードを実行してアクティブなテンソルを確認してください。
質問1
ImageNetで事前に学習されたモデルを使って新しいビジョンタスクを行う際の主な利点は何ですか?
質問2
トランスファー学習のワークフローにおいて、ニューラルネットワークのどの部分が通常凍結されますか?
質問3
PyTorchで分類器ヘッドを置き換える際、まず凍結されたベースから何を決定する必要がありますか?
チャレンジ:分類器ヘッドの適応
FoodVision用の新しい分類器の設計。
あなたはImageNetで事前に学習されたResNetモデルを読み込みます。その最後の特徴層はサイズ512のベクトルを出力します。あなたの「FoodVision」プロジェクトには7種類の異なる食品クラスがあります。
ステップ1
新しい可学習線形層に必要な入力特徴サイズは何ですか?
解答:
入力特徴サイズは、凍結されたベースレイヤーの出力と一致する必要があります。
サイズ:512。
入力特徴サイズは、凍結されたベースレイヤーの出力と一致する必要があります。
サイズ:512。
ステップ2
この新しい分類層を作成するためのPyTorchコードスニペットは何か(出力が`new_layer`と仮定)?
解答:
出力サイズ512が入力であり、クラス数7が出力です。
コード:
出力サイズ512が入力であり、クラス数7が出力です。
コード:
new_layer = torch.nn.Linear(512, 7)ステップ3
新しい線形層に必要な出力特徴サイズは何ですか?
解答:
出力特徴サイズは、ターゲットクラス数と一致する必要があります。
サイズ:7。
出力特徴サイズは、ターゲットクラス数と一致する必要があります。
サイズ:7。